package shape2D;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.ClosePath;
import javafx.scene.shape.FillRule;
import javafx.scene.shape.HLineTo;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.VLineTo;
import javafx.stage.Stage;

// 路径(可多种形状结合以及方便画重复图形)
public class PathDemo extends Application {
	private Pane root = new Pane();
	private Path path;
	
	public static void main(String[] args) {
		launch(args);
	}
	
	@Override
	public void start(Stage stage) throws Exception {
		
		path = new Path();
		path.setFill(Color.ORANGE);
		path.setFillRule(FillRule.EVEN_ODD);	// 设置重合时的填充规则
		
		// 路径1
		MoveTo mt1 = new MoveTo(50, 0);		// 设置路径起点
		
		LineTo lt = new LineTo(100, 0);
		lt.setAbsolute(false);  	// 坐标为相对坐标(默认绝对坐标)
		VLineTo vt = new VLineTo(100);		// 以上一图形的终点为起点 
		vt.setAbsolute(false);
		HLineTo ht = new HLineTo(-100);
		ht.setAbsolute(false);
		ClosePath cp = new ClosePath();		// 闭合路径
		
		// 路径2(相对坐标的好处)
		MoveTo mt2 = new MoveTo(100, 50);
		
		path.getElements().addAll(mt1, lt, vt, ht, cp);
		path.getElements().addAll(mt2, lt, vt, ht, cp);
		root.getChildren().add(path);
		
		Scene scene = new Scene(root, 600, 400);
		stage.setScene(scene);
		stage.show();
	}
}
